Data synchronization is a requirement of many types of communication systems. For example, commanders of military systems need to rapidly and effectively synchronize data to respond to time-constrained operations. In many instances, systems are geographically dispersed and are connected over unreliable logical and physical connections. For example, communication systems that incorporate ships or airplanes may not have constant connectivity with command centers because of the physical and electrical limitations of antennas and the changing physical orientation of the platforms.
Communication between system elements (e.g., nodes) can be reduced or interrupted at any time for a variety of reasons. For example, system elements can be destroyed and/or elements can be required to power down at various times. In some instances, communication between nodes can be interrupted or stopped several times per hour or for days at a time. Node recovery and data synchronization over disconnected, intermittent, or limited bandwidth (DIL) channels can be difficult to achieve with current systems that assume high availability, high throughput and low latency node-to-node links.
Therefore, it is desirable for systems that assume communications will fail and be restored. It is also desirable for systems that seamlessly synchronize when communications are restored.